const express = require("express");
const Router = express.Router();
const sqlHelper = require("../common/sqlHelper");
const jsonwebtoken = require("jsonwebtoken");


// 注册
Router.post("/register", (req, res) => {

  // 先根据用户名去查询一下数据是否存在  
  // 已经存在  给出用户响应 
  // 数据不存在 才需要去插入数据

  const { username, password } = req.body;

  const querySql = `select * from users where username = '${username}' and isDelete = 0  `;
  const queryCallback = (err0, result0) => {
    if (err0) {
      console.log("注册失败");
      console.log(err0);
      res.status(500).send({ code: 500, msg: "注册失败", data: null });
    } else {
      if (result0.length) {
        // 该用户名已经存在了 
        res.status(500).send({ code: 500, msg: "该用户名已经存在", data: null });
      } else {
        // 再去执行 插入操作
        /* ===============  插入操作  ==================== */

        const sql = `insert into users(username,password) values('${username}','${password}')`;
        const callback = (err, result) => {
          if (err) {
            console.log("注册失败");
            console.log(err);
            res.status(500).send({ code: 500, msg: "注册失败", data: null });
          } else {
            console.log("注册成功");
            res.status(200).send({ code: 200, msg: "注册成功", data: null });
          }
        }

        sqlHelper(sql, callback);

        /* ===============  插入操作  ==================== */
      }
    }
  };

  sqlHelper(querySql, queryCallback);










})
// 登录
Router.post("/login", (req, res) => {
  // 前端发送数据 给到后端接口 
  // 接收前端发送的数据   req.body 来获取   username,password 
  const { username, password } = req.body;
  // 去查询一下 数据库   用户名和密码是否正确 
  const sql = `select * from users where  username = '${username}' and password =  '${password}' and isDelete = 0 `;
  const callback = (err, result) => {
    if (err) {
      console.log("登录失败");
      console.log(err);
      res.status(500).send({ code: 500, msg: "登录失败", data: null });
    } else {
      // 查询成功
      if (result.length) {
        // 查询到了 可以生成token 

        // 自己创建一个普通对象
        const user = {
          id: result[0].id,
          username: result[0].username
        }
        // 传入信息和密钥来生成token
        const token = jsonwebtoken.sign(user, "itcast");
        res.send({ code: 200, msg: "登录成功", token });
      } else {
        res.status(500).send({ code: 500, msg: "帐号或者密码不正确", data: null });
      }
    }
  };

  sqlHelper(sql, callback);

  // 私人页面  个人信息 个人钱包 购物车  接口数据  都需要用户携带token 才允许去查询数据！！！ 

})

module.exports = Router;